package com.github.tvbox.osc.ui.details;

import java.util.List;

/**
 * 媒体展示接口，定义了用于显示媒体信息和执行媒体相关动作的方法。
 * 该接口被设计为媒体细节视图的一部分，用于与模型层交互，以展示媒体的详细信息。
 * @author: huangrongcai
 * @date: 2024/6/30
 * @Copyright: 黄嵘才（HuangRc)
 */
interface IMediaDisplay  {
    /**
     * 显示媒体的标题。
     * @param title 媒体的标题字符串。
     */
    void displayTitle(String title);

    /**
     * 显示媒体的海报。
     * @param poster 媒体海报的URL或路径字符串。
     */
    void displayPoster(String poster);
    public abstract interface Base extends IMediaDisplay{

        /**
         * 显示媒体的主要演员列表。
         * @param actors 演员名称的字符串列表。
         */
        void displayActors(List<String> actors);

        /**
         * 显示媒体的导演。
         * @param director 媒体导演的名称字符串。
         */
        void displayDirector(String director);

        /**
         * 显示媒体的评分。
         * @param rating 媒体的评分，通常是一个0到5或0到10之间的浮点数。
         */
        void displayRating(double rating);

        /**
         * 显示媒体的简介或概述。
         * @param introduction 媒体的简介或概述的字符串。
         */
        void displayIntroduction(String introduction);

        /**
         * 执行与媒体相关的动作。
         * @param action 要执行的媒体动作接口实例。
         */
        void performAction(IMediaAction action);
    }

}
